package com.leigq.www.mybatisplusstudy.domain.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.leigq.www.mybatisplusstudy.domain.entity.Staff;
import com.leigq.www.mybatisplusstudy.domain.service.impl.base.IMyService;
import com.leigq.www.mybatisplusstudy.enums.GenderEnum;
import com.leigq.www.mybatisplusstudy.param.AddStaffsParam;
import com.leigq.www.mybatisplusstudy.vo.ListStaffsCustomVO;

import java.util.List;

/**
 * <p>
 * 员工服务接口
 * </p>
 *
 * @author leigq
 * @since 2019-06-14
 */
public interface IStaffService extends IMyService<Staff> {

    /**
     * 添加员工
     *
     * @return the boolean
     */
    Boolean saveStaffs(AddStaffsParam addStaffsParam);

    /**
     * 修改员工信息
     *
     * @param id the id
     * @return the boolean
     */
    Boolean updateStaffs(Long id);


    /**
     * 删除员工，逻辑删除
     *
     * @param id the id
     * @return the boolean
     */
    Boolean deleteStaffs(Long id);

    /**
     * 查询员工列表
     *
     * @return the boolean
     */
    List<Staff> listStaffs();

    /**
     * 查询员工列表，根据性别
     *
     * @return the list
     */
    List<Staff> listStaffsByGender(GenderEnum gender);

    /**
     * 查询员工列表，使用 Wrapper 自定义SQL
     *
     * @return the list <>
     */
    IPage<ListStaffsCustomVO> listStaffsCustom();
}
